For some years now, interactive multimedia computer applications have grown tremendously in popularity for both entertainment and educational purposes. Since arcade and home style video computer games are generally controlled by one form or another of an electronic computer, all such computer games, including those played using a general purpose computer, are referred to herein as interactive multimedia applications. The popularity of interactive multimedia applications owes a great deal to the feeling of immersion experienced by the user as a result of the synchronized, concerted presentation of motion video and audio content. Adding to the barrage of sensory content provide by such coordinated audiovisual presentations are new devices such as (i) virtual reality goggles which block peripheral vision such that the user is limited to the visual presentation of the computer, (ii) virtual reality gloves which allow the user to interact with a multimedia application with simple and familiar hand gestures, and (iii) tactile feedback user input devices which use servomechanisms. Such tactile feedback user input devices add tactile content to the multimedia presentation experienced by the user.
Interactive multimedia applications are generally exceedingly complex. In addition, interactive multimedia applications are designed and implemented by human software engineers who are fallible as are all human beings. Interactive multimedia applications can have errors in various levels of the design and implementation. Such errors can be present in the syntax of computer instructions of which the interactive multimedia application is composed, in the combining of the computer instructions in such a way that an unintended behavior is implemented, or in the overall design such that the intended behavior does not produce the intended effect.
At the first level, computer instructions have a specific syntax and failure to comply with the specific syntax produces computer instructions which cannot be carried out by the computer for which the interactive multimedia application is designed. Such violations of the syntax of the computer instructions of which the interactive multimedia application is composed are frequently detected by compilers or interpreters which translate the computer instructions from a human intelligible, source code form into a computer executable, object code form. In addition, numerous commercially available debugger computer programs are capable of assuring that a particular collection of computer instructions comply with a particular syntax.
At the second level, the computer instructions may comply with the syntax of the computer instructions, but the computer instructions as combined may fail to implemented a desired behavior. In other words, the computer instructions as combined may fail to comport with a specified design of an application. Such errors in the behavior of an interactive multimedia application can be at a simple computational level, e.g., an unintended divide-by-zero error or resource leaks, or can be at a complex, multimedia level, e.g., mismatched audio and motion video content.
At the third level, an accurately implemented design of an interactive multimedia application may fail to have a desired effect. For example, an interactive multimedia training system may fail to improve skills of the user or a computer game may fail to entertain.
Generally, a software engineer designing and implementing an interactive multimedia application performs a number of tests to ensure that the interactive multimedia application is free of errors in syntax, behavior, and design. The software engineer typically uses the interactive multimedia application as an intended user would and attempts to perform all possible actions the intended user could perform to thereby verify that the interactive multimedia application behaves as intended for all such actions. However, users of interactive multimedia applications sometimes use such applications for hours thereby causing the interactive multimedia application to undergo millions of state changes. In addition, portions of the state of the interactive multimedia application persist from day to day to further complicate the possible permutations of states and state transitions that should be tested by the software engineer.
The following examples are illustrative. Consider the computer-implemented training system described in the Adaptive Motivation Application which description is incorporated herein by reference. A software engineer wishing to test a particular reward animation would have to play the game sufficiently well and for a sufficient period of time for the particular reward animation to be played since the reward animation could be associated with a higher level of ability and the particular reward animations played when earned is selected with a degree of randomness. Simply calling for playback of the particular reward animation can be an inadequate test since, in actual use, the reward animation will contend with other components of the training system for computer resources and will play in the context of a state of the training system resulting from hours of use and a multitude of state changes.
The training system described in the Adaptive Motivation Application also includes a variable ratio reinforcement mechanism which presents an animated nugget at random intervals and that description is incorporated herein by reference. For example, such nuggets are presented in response to 3% of all correct responses by the user. Accordingly, a software engineer hoping to test presentation of such a nugget should expect to respond correctly to approximately 33 stimuli, on average, before the nugget will be presented. If the nugget is randomly selected from a collection of nuggets, the software engineer can expect to respond to an intolerable number of stimuli before triggering presentation of the specific nugget.
Suppose further that the software engineer, after hours of use of the interactive multimedia application, causes the interactive multimedia application to behave incorrectly. To properly identify and correct the error in the configuration of the interactive multimedia application, the software engineer must generally be able to re-create the error. Without the ability to re-create the error, it is unlikely that the software engineer can spend the requisite amount of time studying the behavior of the interactive multimedia application and testing subsequent revisions of the interactive multimedia application to verify that the error in behavior has been successfully corrected.
What is needed is a mechanism for thorough, repeatable testing of complex interactive multimedia applications.